Monografias.com > Sin categoría
Descargar Imprimir Comentar Ver trabajos relacionados

Introducción a Haskell (página 2)




Enviado por Pablo Turmero



Partes: 1, 2, 3

Monografias.com
11
Ejemplo gráfico

Monografias.com
12
Ejemplo de aplicación: Dazzle
Es una aplicación para múltiples plataformas (Se usa tanto para Windows como para Linux)
Se desarrolló mucho antes del plazo previsto que ocurre rara vez en proyectos software.
En Windows XP, utiliza 12M de memoria para las grandes redes bayesianas de más de 50 nodos

Monografias.com
13
Más sobre WxHaskell
Se publicó un artículo en una revista muy popular en Francia llamada L’informaticien sobre WxHaskell en Octubre del 2003 escrito por Frédéric Mazué
WxHaskell se imparte en la Universidad Politécnica De Valencia en la asignatura Programación Declarativa
También se imparte en la Universidad de Girona en la asignatura Paradigmas de programación

Monografias.com
14
En la Universidad Mayor de San Simón, Cochabamba, Bolivia se dio una conferencia sobre las interfaces gráficas de usuario en Haskell con especial atención a WxHaskell el 1 de Noviembre de 2007
El departamento de ciencias de la computación de la universidad de Utrecht, Holanda tiene varias aplicaciones de investigación que usan WxHaskell (El Dazzle es uno de ellos)
Más sobre WxHaskell

Monografias.com
15
El departamento de Sistemas Informáticos y computación de la universidad politécnica de Valencia desarrolló una aplicación para la verificación de sitios Web utilizando lenguajes funcionales el 19 de Julio de 2005, y la interfaz gráfica de esa aplicación fue implementada en WxHaskell
Más sobre WxHaskell

Monografias.com
16
Reseña técnica a Haskell

Monografias.com
17
Atributos y Propiedades

El tipo de un atributo representa su contenedor y su valor
text :: Attr (Button a) String
get ::w->Attr w a->IO a
A la combinación de atributo y valor se le llama propiedad
( :=) :: Attr w a->a->Prop w
set ::w->[Prop w]->IO ()

Monografias.com
18
Atributos y Propiedades
exclamation :: Button a->IO ()
exclamation b =
do s <- get b text
set b [text := s++"!"]

( :~) :: Attr w a->(a->a)->Prop w

exclamation b = set b [text :~ (++"!")]

Monografias.com
19
Atributos y Propiedades
Como la clase Window de wxWidgets posee un atributo de texto, todo tipo de ventanas pueden tenerlo
text :: Attr (Window a) String
De esta manera no hay que definir atributos de forma separada
get ::w->Attr w a->IO a
get w (Attr getter setter) = getter w
data Prop w = a: (Attr w a) := a
| a: (Attr w a) :» (a->a)

Monografias.com
20
Seguridad

wxHaskell impone una fuerte disciplina de tipos en wxWidgets

El tratamiento de memoria se realiza de forma automática

Comprueba punteros no inicializados, lanzando una excepción en Haskell

Existe una estructura jerárquica entre los Widgets creados

Monografias.com
21
Layout

Se aloja en el frame

caption :: String->Layout
space :: Int->Int->Layout
rule :: Int->Int->Layout
boxed :: String->Layout->Layout
grid :: Int->Int->[[Layout]]->Layout

Monografias.com
22
Primer Programa
main :: IO () main = start hello

hello :: IO () hello =
do f    <- frame    [text := "Hello!"]
quit <- button f [text := "Quit",
on command := close f]
set f [layout := widget quit]

Monografias.com
23
Librerías
Graphics.UI.WX y Graphics.UI.WXCore

WXCore está a bajo nivel
Es el núcleo de la interfaz de los wxWidgets
Solamente usa abstracción funcional

Sin embargo WX introduce nuevas funcionalidades
Está implementada encima de WXCore
Mecanismos de abstracción como la sobrecarga

Monografias.com
24
Conceptos
El frame es la ventana de nivel superior
Todas las demás poseen siempre un padre
Los panels se incluyen en el frame
Los elementos tienen atributos
Los nombres de los atributos están sobrecargados
La apariencia en la pantalla la establece layout
Los controles también tienen atributos

Monografias.com
25
Conceptos
Son instrucciones a seguir cuando se activan (on)
Hay Widgets invisibles (timer, value …)
Se basa en un entorno de desarrollo orientado a objetos
Los Widgets son punteros a objetos en C++
Atributo + Valor = Propiedad
Gracias a la herencia hay atributos compartidos
Colisión con el sistema de tipos de Haskell
El contenedor sirve para Widgets anidados

Monografias.com
26
Conceptos

Alinear, Expandir y Estirar
halignLeft :: Layout->Layout — default
halignRight :: Layout->Layout
halignCenter :: Layout->Layout
valignTop :: Layout->Layout — default
valignBottom :: Layout->Layout
valignCenter :: Layout->Layout

Monografias.com
27
Conceptos
rigid :: Layout->Layout — default
shaped :: Layout->Layout
expand :: Layout->Layout

static :: Layout->Layout — default
hstretch :: Layout->Layout
vstretch :: Layout->Layout

Monografias.com
28
Conceptos

Para dividir el espacio entre filas y columnas

hweight :: Int->Layout->Layout
vweight :: Int->Layout->Layout
Depende del peso de cada elemento

Monografias.com
29
Una primera aplicación en Haskell

Monografias.com
30
Introducción
wxHaskell no es una interfaz diseñada para crear juegos, aún así, hemos elegido poner como ejemplo el conocido juego ASTEROIDS en una versión bastante minimal.

La intención de programar este juego es la de mostrar aspectos interesantes de wxHaskell, que con otras aplicaciones hubiera sido más "costoso" de ver.

Para quien no conozca el juego Asteroids, éste trata de una nave que debe de esquivar infinitas cantidades de asteroides, y en cuanto choca con un asteroide, éste explosiona llevándonos al final del juego.

Partes: 1, 2, 3
 Página anterior Volver al principio del trabajoPágina siguiente 

Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

Categorias
Newsletter